package com.fjw.controller;

import com.fjw.pojo.Result;
import com.fjw.pojo.Tea;
import com.fjw.service.TeaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

// 这里假设你想统一调整接口前缀，若不想改原有 /tea 相关，也可单独写新 Controller，示例是在原 Controller 扩展
@RestController
// 新增的接口统一用 /api/ 前缀，和你示例的路径对齐
@RequestMapping("/api/tea")
public class TeaController {

    @Autowired
    private TeaService teaService;

    //  原有 /tea 相关接口保留，继续支持之前功能 ，比如这些：
    @PostMapping("/add")
    public Result add(@RequestBody Tea tea) {
        teaService.add(tea);
        return Result.success();
    }

    @GetMapping("/findById")
    public Result<Tea> findById(Integer id) {
        Tea res = teaService.findById(id);
        return Result.success(res);
    }

    @GetMapping("/getAll")
    public Result<List<Tea>> getAll() {
        List<Tea> res = teaService.getAll();
        System.out.println("后端返回数据: " + res);
        return Result.success(res);
    }

    @DeleteMapping("/deleteById")
    public Result deleteById(Integer id) {
        teaService.deleteById(id);
        return Result.success();
    }

    @PostMapping("/updateById")
    public Result updateById(@RequestBody Tea tea) {
        teaService.updateById(tea);
        return Result.success();
    }

    // 新增根据 name 关键词模糊查询的接口，路径为 /search/name?name=xxx
    @GetMapping("/search/name")
    public Result<List<Tea>> searchByName(@RequestParam("name") String name) {
        List<Tea> teaList = teaService.findByName(name);
        return Result.success(teaList);
    }

    /**
     * 新增：按状态查询茶信息
     * URL: /api/tea/search/status?status=1
     */
    @GetMapping("/search/status")
    public Result<List<Tea>> searchByStatus(@RequestParam("status") Integer status) {
        List<Tea> teaList = teaService.findByStatus(status);
        return Result.success(teaList);
    }

    /**
     * 按类型查询茶信息（类型为字符串：热饮/冰饮/冰淇淋）
     * URL: /api/tea/search/type?type=热饮
     */
    @GetMapping("/search/type")
    public Result<List<Tea>> searchByType(@RequestParam("type") String type) {
        List<Tea> teaList = teaService.findByType(type);
        return Result.success(teaList);
    }
}